package com.lei.emos.wx.common.util;


import org.apache.http.HttpStatus;

import java.util.HashMap;
import java.util.Map;


public class R extends HashMap<String, Object> {
    /**
     * 继承HashMap 自带put方法
     * 声明默认初始值
     */
    public R(){
        put("code", HttpStatus.SC_OK);
        put("msg","success");
    }

    /**
     * 创建一个可以链式调用的put方法
     * @param key
     * @param value
     * @return 当前对象
     */
    public R put(String key,Object value){
        super.put(key,value);
        return  this;
    }

    /**
     * 静态工厂方法
     * @return 返回默认值
     */
    public static R ok(){
        return new R();
    }

    /**
     * 重载ok方法 可以放入自定义的msg
     * @param msg
     * @return
     */
    public static R ok(String msg){
        R r = new R();
        r.put("msg",msg);
        return r;
    }

    /**
     * 重载ok方法 可以放入自定义的map
     * @param map
     * @return
     */
    public static R ok(Map<String,Object> map){
        R r = new R();
        r.putAll(map);
        return r;
    }

    /**
     * 静态工厂方法
     * @param code 错误状态码
     * @param msg 错误信息
     * @return
     */
    public static R error(int code,String msg){
        R r = new R();
        r.put("code",code);
        r.put("msg",msg);
        return r;
    }

    /**
     * 重载ok方法 可以放入自定义的msg
     * code 500
     * @param msg
     * @return
     */
    public static R error(String msg){
        return error(HttpStatus.SC_INTERNAL_SERVER_ERROR,msg);
    }

    /**
     * 重载ok方法
     * code 500
     * msg 未知异常，请联系管理员
     * @return
     */
    public static R error(){
        return error(HttpStatus.SC_INTERNAL_SERVER_ERROR,"未知异常，请联系管理员");
    }
}
